#include "TaiKhoan.h"
#include "Tien.h"
#include "string.h"
#include "Phancung.h"
//#include "iostream.h"
#include "conio.h"
#include "stdio.h"
TaiKhoan::TaiKhoan()
{
	strcpy(tenTK, "");
	strcpy(soTK, "");
}
void TaiKhoan::DocThe()
{
	id = 1;
	maPin= 123456;
    strcpy(tenTK, "Nguyen Van A");
    strcpy(soTK, "123456789101112");
	soDu = 7000;
}
char *TaiKhoan::TenTK()
{
    return tenTK;
}
char *TaiKhoan::SoTK()
{
    return soTK;
}
int TaiKhoan::MaPin()
{
	return maPin;
}
bool TaiKhoan::KiemTraSoDu(int tienCanRut)
{
	DocThe();
	if(tienCanRut<soDu)
		return true;
	return false;
}
int TaiKhoan::RutTien()
{
	BanPhim bp;
	HopDungTienMat hdtm;
	int temp, tienCanRut=0, trangThai;
	//nhap so tien
	ManHinh mh;
	mh.ThongBao(5);//in menu rut tien
	do{
		temp = bp.PhimNhan();
		//cout<<temp; for debug
	}while ((54<temp && temp<=57)|| temp ==127 || temp ==13); //chi chap nhan phim 1->6 va phim ESC
	switch(temp)
	{
		case 49://1. 50k
			tienCanRut = 50;
			break;
		case 50://2.
			tienCanRut = 100;
			break;
		case 51://3.
			tienCanRut = 500;
			break;
		case 52://4.
			tienCanRut = 1000;
			break;
		case 53://5. ~~ 2 trieu
			tienCanRut = 2000;
			break;
		case 54://6. sokhac
			tienCanRut = NhapTienRut();
			tienCanRut = 2000;
			break;
		case 27://esc (menu chinh/thoat)
			if(mh.Confirm(2))
				return 0; //ve menu chinh ~~ menu giao dich
			break;
	}
	//valid
	//kiem traso du
	if (!KiemTraSoDu(tienCanRut))
		return 10;//Thieu tien trong TK
	if (hdtm.TongTien()<tienCanRut)
		return 11;//ATM ko du tien tra
	return hdtm.TraTien(tienCanRut);
}
int TaiKhoan::NhapTienRut()
{
	BanPhim bp;
	ManHinh mh;
	int tienRut=0;
    int phimNhan = 0;
	int kyTuNhap = 0;
	bool status=false;
	do
	{
		tienRut=0;
		kyTuNhap = 0;
		mh.ThongBao(7);//nhap so tien can rut
		while (1)
		{
			phimNhan = bp.PhimNhan();
			if (phimNhan == 27)
				if(mh.Confirm(2))
					return 0;
				else
					continue;
			if (phimNhan == 127)
				break;
			if (phimNhan == 13&& tienRut>0)
			{	
				status = true;
				break;
			}
			if (kyTuNhap >8 || phimNhan == 13)
				continue;
			//13,27,127
			if(phimNhan==48 && kyTuNhap ==0)
				continue;
			kyTuNhap +=1;
			tienRut = tienRut*10+(phimNhan-48);
			mh.inChar(phimNhan);
		}
	}
	while (phimNhan!=127 && !status);
	return tienRut;
}
